(function () {
	//订单模板字符串
	var itemTmpl = '<div class="order-item">' +
						'<div class="order-header">' +
							'<div class="order-img">' +
								'<img src=$order-img />'+
							'</div>'+
							'<div class="order-shop one-line">$order-shop</div>'+
							'<div class="arrow"></div>'+
							'<div class="order-state">$order-state</div>'+
						'</div>'+
						'<div class="order-detail clearfix">' +
							'<div class="order-content">$order-item</div>'+
						'</div>'+
						'$comment'+
					'</div>';
	
	/*
	*获取订单数据
	 */
	function getorderList() {
		page++;
		isLoading = true;
		$.get('/MeituanPR/json/orders.json',function (data) {

			//第一个为参数data,指整个json数据对象,第二个为json数据对象中的data
			setTimeout(function () {
				console.log(data);
				var list = data.data.digestlist || [];
				initOrderList(list);

				isLoading = false;
			},1000)
		})
	}


	/*
	*初始化订单数据
	 */
	function initOrderList(list) {
		// console.log(list);
		list.forEach(function (item,index) {
			var str = itemTmpl.replace('$order-img',item.poi_pic)
						   .replace('$order-shop',item.poi_name)
						   .replace('$order-state',item.status_description)
						   .replace('$order-item',getProductList(item))
						   .replace('$comment',getComment(item));
			$('.order-list').append($(str));
		})
	}

	/*
	*商品列表渲染
	 */
	function getProductList(data) {
		var list = data.product_list;
		// console.log(list);
		//商品数组最后一条数据加上元素{type:'more'}
		list.push({type:'more'});
		var str = '';
		list.forEach(function (item) {
			//当读取到商品数组最后一个元素时调用总计菜品函数
			if (item.type === 'more'){
				str += totalPrice(data);
			//否则创建菜品模板字符串
			}else {
				str += '<div class="product-item">'+
							'<div class="product-name">'+ item.product_name +'</div>'+
							'<div class="product-num">x&nbsp;' +item.product_count +'</div>'+
						'</div>';
			}

		})
		//return str;写在forEach函数体内无法替换模板字符串,会报错undefined
		return str;
	}


	/*
	*总计菜品渲染
	 */

	function totalPrice(data) {
		var str = '<div class="total-price">' +
							'<span>...</span>'+
							'总计'+ data.product_count + '个菜,实付'+
							'<span>¥'+data.total+'</span>'+
					'</div>';

		return str;
	}

	/*
	*评价渲染
	 */
	function getComment(data) {
		var evaluation = !data.is_comment;
		if (evaluation){
			return '<div class="evaluation">' +
						'<div class="evaluation-btn">评价</div>'+
					'</div>';
		}
		//由于json文件中有的is_comment有值,有的没值,故需要添加return '';
		return '';
	}
	
	/*
	*滚动加载
	 */
		//1.定义全局变量var page = 0;var isLoading = false;
	    //2.调用公式计算判定:(屏幕整体高度+网页内容顶部距离屏幕顶部高度)>=(网页内容高度-提前量)
		//3.满足计算公式触发刷新页面
		//4.限制频繁刷新,此处限制刷新不超过3页:page<3
	    //5.循环判定条件一:刷新小于3页且isLoading = false;的情况下,执行getorderList();方法获取订单数据刷新;
		    // 否则显示文字'加载完成';
	    //6.执行getorderList();方法:
			/*增加页数page++;同时设置加载条件isLoading = true;
			**获取订单json数据,同时将获取的json数据通过setTimeout方法定时初始化('initOrderList(list);')
			**初始化同时设置加载条件isLoading = false;
			*/
	var page = 0;
	var isLoading = false;
	function addEvent() {
		window.addEventListener('scroll',function () {
			//屏幕整体高度
			var clientHeight = document.documentElement.clientHeight;
			//网页内容高度
			var scrollHeight = document.documentElement.scrollHeight;
			//网页内容顶部距离屏幕顶部高度
			var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
			//提前量,用来减小网页内容高度,提早触发刷新数据
			var Predis = 30;
			if ((scrollTop+clientHeight)>=(scrollHeight-Predis)){
				if (page < 3){
					if (isLoading){
						return;
					}
					//获取订单数据
					getorderList();
				}
			}else {
				$('.loading').text('加载完成');
			}
		});
	}

	/*
	*初始化函数
	 */
	function init() {
		getorderList();
		addEvent();
	}

	init();

})();